import { http } from "@/utils/http";

// 出资方列表请求参数
export interface InvestorListRequest {
  keyword?: string; // 搜索关键词(公司名称/法人名称/电话)
  page: number;
  page_size: number;
  status?: number; // 状态：1-启用 2-禁用
}

// 出资方列表响应
export interface InvestorListResponse {
  code: number;
  message: string;
  data: {
    list: Investor[];
    total: number;
    total_pages: number;
  };
}

// 出资方信息
export interface Investor {
  id: number;
  company_name: string; // 公司名称
  legal_person: string; // 法人名称
  phone: string; // 联系电话
  fund_amount: number; // 资金额度
  available_amount: number; // 可用额度
  used_amount: number; // 已用额度
  partner_id: string; // 合伙人平台id
  status: number; // 状态：1-启用 2-禁用
  created_at: string;
  updated_at: string;
}

// 创建出资方请求参数
export interface InvestorCreateRequest {
  company_name: string; // 公司名称
  legal_person: string; // 法人名称
  phone: string; // 联系电话
  fund_amount?: number; // 资金额度
  username: string; // 账号
  password: string; // 密码
  partner_id?: string; // 合伙人平台id
}

// 更新出资方请求参数
export interface InvestorUpdateRequest {
  id: number;
  company_name: string; // 公司名称
  legal_person: string; // 法人名称
  phone: string; // 联系电话
  fund_amount?: number; // 资金额度
  partner_id?: string; // 合伙人平台id
}

// 更新出资方状态请求参数
export interface InvestorStatusRequest {
  id: number;
  status: number; // 状态：1-启用 2-禁用
}

// 通用响应
export interface CommonResponse {
  code: number;
  message: string;
  data?: any;
}

/**
 * 获取出资方列表
 * @param data 查询参数
 */
export const getInvestorList = (data: InvestorListRequest): Promise<InvestorListResponse> => {
  return http.request<InvestorListResponse>("post", "/partner/investor/list", { data });
};

/**
 * 创建出资方
 * @param data 出资方信息
 */
export const createInvestor = (data: InvestorCreateRequest): Promise<CommonResponse> => {
  return http.request<CommonResponse>("post", "/partner/investor/create", { data });
};

/**
 * 更新出资方
 * @param data 更新参数
 */
export const updateInvestor = (data: InvestorUpdateRequest): Promise<CommonResponse> => {
  return http.request<CommonResponse>("post", "/partner/investor/update", { data });
};

/**
 * 更新出资方状态
 * @param data 状态信息
 */
export const updateInvestorStatus = (data: InvestorStatusRequest): Promise<CommonResponse> => {
  return http.request<CommonResponse>("post", "/partner/investor/status", { data });
}; 